<?php

class Rnaasv_CargoRole implements Zend_Acl_Role_Interface {
	
	protected $_row;
	
	public function __construct($row) {
		if (is_array($row)) {
			$this->_row = $row;
		} else if ($row instanceof Zend_Db_Table_Row_Abstract) {
			$this->_row = $row->toArray();
		}
	}
	
	    /**
     * Retrieve row field value
     *
     * @param  string $columnName The user-specified column name.
     * @return string             The corresponding column value.
     */
    public function __get($columnName) {
    	return $this->_row[$columnName];
    }
	
	
	/**
	 * @see Zend_Acl_Role_Interface::getRoleId()
	 *
	 * @return string
	 */
	public function getRoleId() {
		$roleId = "con_sesion";
		if ($this->isJoven()) {
			$roleId = 'joven';
			if ($this->isLobato()) {
				$roleId = 'lobato';
			} else if ($this->isScout()) {
				$roleId = 'scout';
			} else if ($this->isRover()) {
				$roleId = 'rover';
			}
		} else if ($this->isAdulto()) {
			$roleId = 'adulto';
			if ($this->isAdultoInstitucional()) {
				$roleId = 'institucional';
			} else if ($this->isAdultoGrupo()) {
				$roleId = 'grupo';
			}
		} else {
			$roleId = "general";
		}
		return $roleId;
	}
	
    public function isJoven() {
    	$esJoven = false;
    	if ($this->Credencial > 1000000 && $this->Credencial < 2000000) {
    		$esJoven = true;
    	}
    	return $esJoven;
    }

    public function isAdulto() {
    	$esAdulto = false;
    	if ($this->Credencial > 2000000 && $this->Credencial < 3000000) {
    		$esAdulto = true;
    	}
    	return $esAdulto;
    }

    public function isAdultoInstitucional() {
    	if ($this->isAdulto() && $this->cTipoUnidad == 5) {
    		return true;
       	}
       	return false;
    }
    
    public function isAdultoGrupo() {
    	if ($this->isAdulto() && $this->cTipoUnidad < 5) {
    		return true;
       	}
       	return false;
    }
    
    public function isLobato() {
    	if ($this->isJoven() && $this->cTipoUnidad == 1) {
    		return true;
    	}
    	return false;
    }
    
    public function isScout() {
    	if ($this->isJoven() && $this->cTipoUnidad == 2) {
        	return true;
    	}
    	return false;
    }
    
    public function isRover() {
    	if ($this->isJoven() && $this->cTipoUnidad == 3) {
        	return true;
    	}
    	return false;
    }
}

?>
